package com.ruoyi.system.service;

import com.ruoyi.system.domain.*;

import java.util.HashMap;
import java.util.List;

/**
 * 材料Service接口
 * 
 * @author ruoyi
 * @date 2020-12-16
 */
public interface IMaterialService 
{
    /**
     * 查询材料
     * 
     * @param mId 材料ID
     * @return 材料
     */
    public Material selectMaterialById(Long mId);

    /**
     * 查询项目材料明细记录
     * 
     * @param material 材料
     * @return 材料集合
     */
    public List<MaterialEight> selectMaterialList(Material material, Integer pid);
    /** @Description: 添加材料
    * @Param: [pid, mid] 
    * @returns: int 
    * @Author: Administrator
    * @Date: 2020/12/22 17:09
    **/
    
//    int insertMaterial(MaterialFive materialFive);
    /**
     * 查询材料列表
     *
     * @param material 材料
     * @return 材料集合
     */
    public List<Material> selectMaterialListQuery(Material material, Integer pid);
    List<Material> queryMaterials(Material material);

    /**
     * 查询单材料明细列表
     *
     * @param material 材料
     * @return 材料集合
     */
    public List<MaterialSeven> selectmaterialdetailsList(Material material, Integer pid, Integer mid);

    /**
     * 查询单材料明细记录列表
     *
     * @param material 材料
     * @return 材料集合
     */
    List<Material> selectmaterialRecordList(Material material, Integer pid, Integer mid);

    /**
     *领料回显
     */
    List<PickCondition> searchByMid(HashMap<String,Object> map);

    /**
     * 领料
     */
    boolean pick(PickCondition pickCondition);

    /**
     *退料回显
     */
    List<PickCondition> selectMatById(HashMap<String,Object> map);
    /**
     * 退料
     * @param材料
     * @return 材料集合
     */
    boolean returnWare(PickCondition pickCondition);

    List<String> sreturnWares();
    //删除材料
    int deleteMaterial(long pid, long mid);

    //查询总领料退料
    List<Long> selectCount(Long mid, Integer pid);

    int insertMaterialproject(MaterialThree materialThree);
    List<HashMap> projectCost(Long pId);
}
